package servidor;

import comunicacion.Buffer;
import estado.EstadoPartida;
import mensaje.Mensaje;

/**
 * Responsabilidad: recibir los mensajes de la cola de mensajes
 * entrantes y hacer lo indicado segun el tipo de mensaje.
 * Mensajes posibles: CrearPartida, AgregarJugador, FinPartida, Evento (movimiento o bala).
 */

public class GestorEntrada extends Thread{

    private Buffer colaEntrada;
    private GestorPartida gestorPartida;
    private EstadoPartida estadoPartida;

    public GestorEntrada(Buffer colaEntrada, EstadoPartida estadoPartida){
        this.colaEntrada = colaEntrada;
        this.estadoPartida = estadoPartida;
        this.start();
    }

    @Override
    public void run(){
        Mensaje mensaje;
        while(true){
            mensaje = colaEntrada.sacar();
            gestorPartida = (GestorPartida) estadoPartida.recibeDeCola(mensaje, gestorPartida);
        }
    }
}
